home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / GMS / Source / E / Screens / DoubleBuffer.e next >
Encoding:
Text File  |  1997-05-03  |  1.5 KB  |  50 lines

  1. /* Double Buffering
  2. ** ----------------
  3. ** This just shows how to double buffer the screen.  You can also try out
  4. ** triple buffering just by changing the DBLBUFFER flag to TPLBUFFER in the
  5. ** GameScreen.
  6. */
  7.  
  8. MODULE 'games','games/games'
  9.  
  10. PROC main()
  11.    DEF screen:PTR TO gamescreen, loadpic:PTR TO picture
  12.  
  13.    IF gmsbase := OpenLibrary('GMS:GPI/Master.GPI',0)
  14.       SetUserPrefs(0)
  15.       IF (screen := AddScreen([TAGS_GAMESCREEN,0,
  16.            GSA_PALETTE,[$000000,$103000,$F0C0B0,$F0A090,$D08080,$906050,$604040,$201010,$400000,$404040,
  17.                         $F0F000,$403020,$C0C000,$105000,$500010,$808000,$206010,$207010,$308020,$409020,
  18.                         $50A030,$50B040,$607070,$60C040,$708080,$90A0A0,$B0C0C0,$800010,$900010,$A00020,
  19.                         $700010,$600010]:LONG,
  20.            GSA_SCRWIDTH,320,
  21.            GSA_SCRHEIGHT,256,
  22.            GSA_PLANES,5,
  23.            GSA_SCRATTRIB,DBLBUFFER,
  24.            TAGEND]))
  25.  
  26.          IF (loadpic := LoadPic([TAGS_PICTURE,0,
  27.             PCA_DATA,screen.memptr1,
  28.             PCA_WIDTH,320,
  29.             PCA_HEIGHT,256,
  30.             PCA_PLANES,5,
  31.             PCA_AMTCOLOURS,32,
  32.             PCA_SCRTYPE,screen.scrtype,
  33.             PCA_FILE,'GMS:demos/data/PIC.Green',
  34.             TAGEND]))
  35.  
  36.             ShowScreen(screen)
  37.             REPEAT
  38.               WaitVBL()
  39.               SwapBuffers(screen)
  40.             UNTIL !(ReadMouse(JPORT1) AND MB_LMB)
  41.  
  42.          FreePic(loadpic)
  43.          ENDIF
  44.       DeleteScreen(screen)        
  45.       ENDIF
  46.    CloseGMS()
  47.    ENDIF
  48. ENDPROC
  49.  
  50.